package org.hard.model.structure.decorator;

/**
 * @author: 王林博
 * @date: 2023年07月13日 15:29
 * // 装饰基类和其他组件遵循相同的接口。该类的主要任务是定义所有具体装饰的封
 * // 装接口。封装的默认实现代码中可能会包含一个保存被封装组件的成员变量，并
 * // 且负责对其进行初始化。
 */
public class DataSourceDecorator implements DataSource{


    DataSource wrappee;

    public DataSourceDecorator(DataSource source){
        wrappee = source;
    }

    // 装饰基类会直接将所有工作分派给被封装组件。具体装饰中则可以新增一些额外的行为
    @Override
    public void writeData(String data) {
        wrappee.writeData(data);
    }
    // 具体装饰可调用其父类的操作实现，而不是直接调用被封装对象。这种方式可简化装饰类的扩展工作。
    @Override
    public String readData() {
        return wrappee.readData();
    }
}
